﻿using DeloUtils.Migra;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Xml;
using System.Data.OleDb;

namespace TestDeloUtils
{
    
    
    /// <summary>
    ///Это класс теста для LocalDBCompactTest, в котором должны
    ///находиться все модульные тесты LocalDBCompactTest
    ///</summary>
    [TestClass()]
    public class LocalDBCompactTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Получает или устанавливает контекст теста, в котором предоставляются
        ///сведения о текущем тестовом запуске и обеспечивается его функциональность.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Дополнительные атрибуты теста
        // 
        //При написании тестов можно использовать следующие дополнительные атрибуты:
        //
        //ClassInitialize используется для выполнения кода до запуска первого теста в классе
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //ClassCleanup используется для выполнения кода после завершения работы всех тестов в классе
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //TestInitialize используется для выполнения кода перед запуском каждого теста
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //TestCleanup используется для выполнения кода после завершения каждого теста
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        /// <summary>
        ///Тест для syncDocgroup. режим onetoone
        ///</summary>
        [TestMethod()]
        public void syncDocgroupTest_onetoone1()
        {

            string Name = AppDomain.CurrentDomain.BaseDirectory;
            TModeLocalDB mode = TModeLocalDB.Exist;
            LocalDBCompact target = new LocalDBCompact(Name + @"\..\..\DataTest\protocol.sdf", mode); 
            XmlDocument doc = new XmlDocument();
            doc.Load(Name + @"\..\..\DataTest\rcin.xml");
            XmlNode ExportDocgroup = doc.SelectSingleNode("//rc/DOCGROUP");
            string expected = "0.2TZ.2U1.";
            string actual = target.syncDocgroup(ExportDocgroup);
            Assert.AreEqual(expected, actual);
            //Assert.Inconclusive("Проверьте правильность этого метода теста.");
        }

        [TestMethod()]
        public void syncDocgroupTest_byname1()
        {

            string Name = AppDomain.CurrentDomain.BaseDirectory;
            TModeLocalDB mode = TModeLocalDB.Exist;
            LocalDBCompact target = new LocalDBCompact(Name + @"\..\..\DataTest\protocol.sdf", mode);
            target.analyz = TAnalys.byname;
            String ConnectionString = "Provider=SQLOLEDB.1;Initial Catalog=D12_DB;Data Source=.\\SQLEXPRESS;Persist Security Info=True;User ID=d12;Password=admin;Pooling=True;Connect Timeout=30";
            OleDbConnection connection = new OleDbConnection(ConnectionString);
            connection.Open();
            target.SyncConnection = connection;
            target.defaultRcIn = "0.";
            XmlDocument doc = new XmlDocument();
            doc.Load(Name + @"\..\..\DataTest\rcin.xml");
            XmlNode ExportDocgroup = doc.SelectSingleNode("//rc/DOCGROUP");
            string expected = "0.2TZ.2U1.";
            string actual = target.syncDocgroup(ExportDocgroup);
            Assert.AreEqual(expected, actual);
            //Assert.Inconclusive("Проверьте правильность этого метода теста.");
        }
    }
}
